// 食物对象代码
(function (w) {
    // 声明一个list来存放食物
    let list = []

    // 1. 创建食物对象的构造函数
    function Food(width, height, bgColor, x, y) {
        this.width = width || 20
        this.height = height || 20
        this.bgColor = bgColor || 'blue'
        this.x = x || 20
        this.y = y || 20
    }
    // 2.根据Food构造函数创建出来的食物对象，要渲染到页面上
    Food.prototype.render = function (map) {
        // 在渲染新食物之前删除被吃掉的食物
        remove(map)
        
        // 2.1 给食物对象随机生成x、y坐标
        this.x = Math.floor(Math.random() * map.offsetWidth / this.width) * this.width
        this.y = Math.floor(Math.random() * map.offsetHeight / this.height) * this.height
        // 2.2 创建一个div，让它拥有食物对象的所有数据
        let div1 = document.createElement('div')
        div1.style.width = this.width + 'px'
        div1.style.height = this.height + 'px'
        div1.style.backgroundColor = this.bgColor
        div1.style.position = 'absolute'
        div1.style.left = this.x + 'px'
        div1.style.top = this.y + 'px'
        // 2.3 把这个div追加到游戏地图中
        map.appendChild(div1)
        // 把这个食物的div存起来
        list.push(div1)
    }
    // 删除被吃掉的食物div
    function remove(map) {
        for (let i = 0; i < list.length; i++) {
            map.removeChild(list[i])
        }
        // 清空数组
        list.length = 0
    }
    // 把食物对象暴露出去
    return w.Food = Food
}(window))